CA65 ?= ca65
LD65 ?= ld65

all: reconstructed.nes verify

header.o: header.s header.bin
	$(CA65) -g -o $@ $<

prg0.o: prg.s symbols.inc locals.inc
	$(CA65) -g -o $@ $<

prg6.o: prg.6.s symbols.inc locals.inc
	$(CA65) -g -o $@ $<

prg07.o: prg.07.s symbols.inc locals.inc
	$(CA65) -g -o $@ $<

reconstructed.nes: header.o prg0.o prg6.o prg07.o linker.cfg
	$(LD65) -C linker.cfg -m reconstructed.map -Ln reconstructed.lbl -o $@ header.o prg0.o prg6.o prg07.o

verify: reconstructed.nes rom.nes
	cmp reconstructed.nes rom.nes
	@echo "Byte-identical ROM verified."

clean:
	rm -f *.o reconstructed.nes reconstructed.map reconstructed.lbl

.PHONY: all verify clean
